<?php

namespace Controller;

class LoginControllerOutput
{
	public $loginPanelHTML = "";
	public $userPanelHTML = "";
}

class LoginController 
{
	//Param: Instanser av modell klasserna Database & Loginhandler
	//Returnerar: HTML för Loginpanel & Användarpanel
	public function DoControll(\Model\Database $db, \Model\LoginHandler $lh)
	{
		//Instanser		
		$lv = new \View\LoginView();
				
		//Retur variablar
		$loginHTML = $lv->RenderHeader(\View\LoginView::LOGIN_CTRL_HEADER);	
		$msg = $lv->RenderMessage(\View\LoginView::LOGGED_OUT);	
														
		//Loggar ut anv. om denne är online och klickar på "logout"
		if($lh->IsLoggedIn() == TRUE)
		{																
			if($lv->TriedToLogOut() == TRUE)
			{
				$lv->ClearMemory();//Rensar sparade anv. uppgifter (coockies)
				$lh->DoLogout();			
			}		
		}
						
		//Försöker logga in anv om denna trycker på "Login"
		else if($lv->TriedToLogin() == TRUE)
		{											
			if ($lh->DoLogin($lv->GetUserName(), $lv->GetPassword()) == FALSE)
			{
				$msg .= $lv->RenderMessage(\View\LoginView::INVALID_INFO);
			}	
			//Sparar anv-coockies om anv klickat i "Remember me" vin inloggning.
			else if($lv->GetRememberBox() == TRUE)		
			{
				$lv->UserDoRemember();
			}	
		}
	
		$out = new LoginControllerOutput();
		
		//Om anv. är inloggad retuneras även "Användarpanelen"
		if($lh->IsLoggedIn() == TRUE)
		{
			$loginHTML .= $lv->DoLogoutBox();						
			$msg = $lv->RenderMessage(\View\LoginView::LOGGED_IN);	
			
			//Anropar UserController för hämtning av UserPanel
			$userCtrl = new \Controller\UserController();		
			$out->userPanelHTML = $userCtrl->DoControll($db, $lh);
		}
		else
		{
			$loginHTML .= $lv->DoLoginBox();	
			$loginHTML .= $lv->RenderRegisterLink();							
		}
		
		$loginHTML .= $msg; 
				
		$out->loginPanelHTML = $loginHTML;		
						
		return $out;				
	}		
	
}

?>